unit Main;

{$mode objfpc}{$H+}

//========================================================================================
//
// Unit : main.pas
//
// Description : This module provides
//
// Called By :
//
// Calls : AppSettings : frmAppSettings.ApplicationName
//                       frmAppSettings.ShowModal
//         Init : Initlialise
//
// Ver. : 1.00
//
// Date : 26 Dec 2016
//
//========================================================================================

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Menus,
  ComCtrls,
  // App;ication units
  AppSettings, Init;

type

  { TfrmMain }

  TfrmMain = class(TForm)
    mnuSettings: TMenuItem;
    mnuFileExit: TMenuItem;
    mnuMain: TMainMenu;
    mnuFile: TMenuItem;
    StatusBar1: TStatusBar;
    ToolBar1: TToolBar;
    procedure FormShow(Sender: TObject);
    procedure mnuFileExitClick(Sender: TObject);
    procedure mnuSettingsClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.lfm}

//========================================================================================
//          PRIVATE CONSTANTS
//========================================================================================

//========================================================================================
//          PUBLIC CONSTANTS
//========================================================================================

//========================================================================================
//          PRIVATE VARIABLES
//========================================================================================

//========================================================================================
//          PUBLIC VARIABLES
//========================================================================================

//========================================================================================
//          PRIVATE ROUTINES
//========================================================================================

//========================================================================================
//          PUBLIC ROUTINES
//========================================================================================

//========================================================================================
//          PROPERTY ROUTINES
//========================================================================================

//========================================================================================
//          MENU ROUTINES
//========================================================================================

//====================
//  FILE Menu
//====================
procedure TfrmMain.mnuFileExitClick(Sender: TObject);
begin
  Application.Terminate;
end;// procedure TfrmMain.mnuFileExitClick

//====================
//  SETTINGS MENU
//====================
procedure TfrmMain.mnuSettingsClick(Sender: TObject);
begin
  frmAppSettings.ShowModal;
end;// procedure TfrmMain.mnuSettingsClick

//========================================================================================
//          COMMAND BUTTON ROUTINES
//========================================================================================

//========================================================================================
//          CONTROL ROUTINES
//========================================================================================

//========================================================================================
//          FILE ROUTINES
//========================================================================================

//========================================================================================
//          FORM ROUTINES
//========================================================================================
procedure TfrmMain.FormShow(Sender: TObject);
var
  vstrCaption: string;

begin

  if not Initialise then
  begin
    showmessage('Application Terminating');
    Application.Terminate;
  end;

  vstrCaption := frmAppSettings.AppName;
  frmMain.Caption := vstrCaption +
                     ' - Ver: ' +
                     frmAppSettings.AppVersion;

end;// procedure TfrmMain.FormShow

//========================================================================================
end.

